package pl.register.android.database.dao;

import pl.register.android.classes.ClassesTopic;
import pl.register.android.group.StudentsGroup;
import pl.register.android.homework.HomeworkTopic;
import pl.register.android.lesson.LessonProgram;
import pl.register.android.lesson.TagLesson;
import pl.register.android.program.Program;
import pl.register.android.year.Year;

/**
 * @author Mateusz Strzelecki
 * @since 2013-04-27
 */
public interface ProgramDao {

    Program insertProgram(Program program, Year year);

    LessonProgram insertLessonProgramTo(LessonProgram lessonProgram, StudentsGroup group);

    LessonProgram findNextLessonProgram(LessonProgram prevLessonProgram, Year year);

    Program findProgramFor(Year year);

    Program findProgramForGroupBy(StudentsGroup group, TagLesson tag);

    void updateLessonProgram(LessonProgram lessonProgram);

    void updateClassesTopic(ClassesTopic classesTopic);

    void updateHomeworkTopic(HomeworkTopic homeworkTopic);

    void updateLessonProgramIn(LessonProgram lessonProgram, StudentsGroup group);

    void deleteLessonProgramFrom(LessonProgram lessonProgram, StudentsGroup group);

    int countLessonProgramIn(StudentsGroup studentsGroup);
}
